/**
 * this的指向问题
 * 第一次obj.dbl(); 
 * this.val*=2  this.val指向的是obj中的val  函数里面没有定义val，所以val*=2中的val指向的是全局作用域window中的val
 * 第二次将函数赋给func   func的执行对象是window
 * 此时this.val的指向是全局作用域中的window.val 由于在obj.dbl中 window.val已经等于2
 * 则this.val *=2 得到window.val=4  再计算val*=2 得到val=8
 * 则输出console.log(val)和console.log(this.val)结果都为8 
 */
window.val=1;
var obj={
  val:2,
  dbl:function(){
    this.val *=2;
    val *=2;
    console.log(val);
    console.log(this.val);
  }
};
obj.dbl();  //  2  4
var func=obj.dbl;
func();  //8  8